package leetcode_300;

import java.util.ArrayList;
import java.util.List;

/**
 *@author 周杨
 *HappyNumber_202 编写一个算法来确定一个数字是否“开心”。
开心号码是由以下过程定义的号码：从任何正整数开始，用数字的平方和替换该号码，并重复该过程直到数字等于1（它将停留在该位置），
或者它循环在一个不包含1的循环中无休止的。这个过程以1结束的那些数字是快乐的数字。
 *describe: AC  72%
 *2018年6月11日 下午4:41:15
 */
public class HappyNumber_202 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	public boolean isHappy(int n) {
        List<Integer> list=new ArrayList<Integer>();
        list.add(n);
        while(n!=1) {
        	int res=0;
        	while(n!=0) {
        		res+=Math.pow(n%10, 2);
        		n/=10;
        	}
        	if(list.contains(res))
        		return false;
        	else {
        		list.add(res);
        		n=res;
        	}	
        }
        return true;
    }
}
